El archivo de configuración (php.ini) es leído cuando arranca PHP. Para las versiones de PHP como módulo de servidor esto sólo ocurre una vez al arrancar el servidor web. Para la versión CGI y CLI, esto ocurre en cada llamada.
php.ini es buscado en las siguientes ubicaciones (en orden):
La ubicación particular del módulo SAPI (la directiva PHPIniDir en Apache 2, la opción de línea de comandos -c en CGI y CLI, el parámetro php_ini en NSAPI, la variable de entorno PHP_INI_PATH en THTTPD)
La variable de entorno PHPRC. Antes de PHP 5.2.0, ésta era chequeada después que la llave de registro mencionada más adelante.
A partir de PHP 5.2.0, las siguientes ubicaciones del registro son verificadas en orden: HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z\IniFilePath, HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y\IniFilePath y HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x\IniFilePath, en donde x, y y z quieren decir las versiones mayor, menor y de lanzamiento.
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (ubicación del Registro de Windows)
El directorio actual de trabajo (excepto en CLI)
El directorio del servidor web (para módulos SAPI), o el directorio de PHP (de otra forma en Windows)
El directorio de Windows (C:\windows o C:\winnt) (para Windows), o la opción de tiempo de compilación --with-config-file-path
Si php-SAPI.ini existe (en donde SAPI es la SAPI usada, entonces el nombre de archivo es p.ej. php-cli.ini o php-apache.ini), éste es usado en lugar de php.ini. El nombre de la SAPI puede determinarse por medio de php_sapi_name().
Note: El servidor web Apache cambia al directorio raiz al arrancar, por ello PHP intentará leer el archivo php.ini en el directorio raiz, si existe.
Las directivas php.ini gestionadas por extensiones están documentadas en cada una de las páginas de las extensiones respectivamente. La lista de directivas de núcleo se encuentra disponible en el apéndice.La mayoria de directivas PHP estan listadas en ini_set() con los respectivos permisos y enlaces a la documentacion. Para obtener una lista completa de todas las directivas disponibles en su versión de PHP, por favor lea su archivo php.ini, el cual debe estar bien documentado. Alternativamente, puede encontrar útil la última versión del archivo » php.ini desde CVS.
Example #1 Ejemplo de php.ini
; todo texto en una línea después de un punto-y-coma sin escapar (;) es ignorado [php] ; los marcadores de sección (texto entre corchetes) son ignorados también ; Los valores booleanos pueden definirse a cualquiera de los siguientes: ; true, on, yes ; ó false, off, no, none register_globals = off track_errors = yes ; es posible encerrar cadenas entre comillas dobles include_path = ".:/usr/local/lib/php" ; las barras invertidas son tratadas igual que cualquier otro caracter include_path = ".;c:\php\lib"
Desde PHP 5.1.0, es posible hacer referencia a variables .ini existentes desde el interior de archivos .ini. Por ejemplo: open_basedir = ${open_basedir} ":/nuevo/directorio".